1. Field of the Invention
The invention relates generally to storage systems and more specifically relates to reading data from a plurality of storage devices belonging to a plurality of spans and checking data belonging to each span independently of another span.
2. Discussion of Related Art
Applications of information technology have become pervasive in our world. Computer environments that support these applications often use Redundant Array of Independent Disks (“RAID”) technology in storage systems to achieve high performance, reliability, and/or larger storage capacities. A storage system generally includes a controller for interfacing with a host computer, as well as a plurality of storage devices arranged as one or more logical volumes that presents a range of data blocks onto which data is stored.
Frequently, the logical volume is arranged as one or more spans with the plurality of storage devices arranged into the one or more spans. A span can itself be seen as a logical volume. However, if there are multiple spans, the spans will together be exposed as a single logical volume through the controller. For example, a span may itself implement a RAID 5 volume, and a logical volume that consists of two such RAID 5 spans will be exposed as a RAID 50 volume through the controller. This is because when two RAID 5 spans are combined as a striped logical volume (i.e., data is split across two or more storage devices/volumes similar to RAID 0), a RAID50 volume is formed. Likewise, when two RAID 1, 1E, or 6 spans are combined, a RAID 10, 1E0, or 60 volume is formed.
Various techniques are implemented at these RAID levels to achieve high reliability. One such technique is consistency check, which is performed to verify integrity of data stored in a logical volume based on the RAID redundant information of the volume. The consistency check processing is typically performed within the storage system independently of and transparent to any attached host systems. A consistency check generally includes two steps. A first step involves reading data from storage devices of a single RAID span, and a second step involves checking the read data. The actual checking usually depends on the RAID level that is implemented. For example, a RAID 5 span may be read and XOR parity check may be performed. Conversely, a RAID 1 span may be read and the read data may be checked for being a mirrored set.
As noted above, a logical volume is frequently arranged as one or more spans. When a logical volume includes multiple spans, performing consistency check on the logical volume as presently practiced includes performing consistency check sequentially on each of the multiple spans. Thus, performing consistency check as presently practiced includes reading data belonging to a single first span and checking consistency of the data belonging to the single first span, then reading data belonging to a single second span and checking consistency of the data belonging to the single second span, etc.
As applications of information technology are becoming more pervasive, storage systems are also becoming more complicated and larger in size. Increased storage requirements often lead to larger number of spans used to define a logical volume. Each span is also becoming larger in size as capacity of each storage device (e.g., disk) increases. Accordingly, performing consistency check on a logical volume requires more processing time.
Thus it is an ongoing challenge to improve the performance of consistency checks.